#pragma once

#include "Syntax/Token.hpp"
#include "Expression.hpp"

class UnaryExpressionSyntax : public ExpressionSyntax {
public:
  UnaryExpressionSyntax(SharedToken operatorToken, SharedExpression operand)
      : ExpressionSyntax(SyntaxKind::UnaryExpression, "UnaryExpression"),
        OperatorToken(operatorToken), Operand(operand) {}

  std::vector<SharedNode> GetChildren() {
    return {this->OperatorToken, this->Operand};
  }

public:
  SharedToken OperatorToken;
  SharedExpression Operand;
};
